package cn.lycode.system.domain.vo;

import cn.lycode.common.enums.TrueFalseEnum;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

import java.util.List;

@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class SysMenuVO {
    private Long id;
    private Long pid;
    private String path;
    private String name;
    @JsonIgnore
    private String title;
    @JsonIgnore
    private String icon;
    private String component;
    @JsonIgnore
    private String redirect;
    private Integer menuSort;
    private String menuType;
    private String perms;

    @JsonIgnore
    private TrueFalseEnum isHidden;

    @JsonIgnore
    private TrueFalseEnum isLink;

    @JsonIgnore
    private TrueFalseEnum isFull;

    @JsonIgnore
    private TrueFalseEnum isAffix;

    @JsonIgnore
    private TrueFalseEnum isCache;

    private TrueFalseEnum isDisable;
    private Meta meta;
    private List<SysMenuVO> children;

    @Data
    public static class Meta {

        private String icon;

        private String title;

        private String isLink;

        private TrueFalseEnum isHidden;

        private TrueFalseEnum isFull;

        private TrueFalseEnum isAffix;

        private TrueFalseEnum isCache;
    }
}